package com.ponhu.ea2.stockcenter.provider.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.io.Serializable;

/**
 * <p>
 * 货品批次变动记录表
 * </p>
 *
 * @author ${author}
 * @since 2022-03-09
 */
@Data
@Accessors(chain = true)
@TableName(value = "ph_stock_inventory_batch_change")
public class StockInventoryBatchChange implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 实物库存变动ID
     */
    private Long changeId;

    /**
     * 货品ID
     */
    private Long inventoryId;

    /**
     * 货品编码
     */
    private String inventoryCode;

    /**
     * 批次编码
     */
    private String batchCode;

    /**
     * 业务单号
     */
    private String directSn;

    /**
     * 变动类型：200-调拨申请 201-调出 202-调入 203-销售出库 204-销退入库 205-采退出库 206-采购入库 207-盘亏出库 208-盘盈入库 209-其他
     */
    private Integer actionType;

    /**
     * 库存变动数量(区分正负数)
     */
    private Integer updatedNum;

    /**
     * 操作前库存数
     */
    private Integer preStockNum;

    /**
     * 操作后库存数
     */
    private Integer postStockNum;

    /**
     * 变动说明
     */
    private String optRemark;

    /**
     * 操作时间
     */
    private LocalDateTime operatorTime;

    /**
     * 操作人姓名
     */
    private String operatorName;

    /**
     * 数据库记录创建时间
     */
    private LocalDateTime createTime;

    public String getInventoryCodeAndBatchCode() {
        return String.format("%s_%s", inventoryCode, batchCode);
    }

}
